﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;


using SpiritEngine.Source.ApplicationLayer;
using SpiritEngine.Source.ApplicationLayer.Services;


namespace SpiritEngine.Source.ApplicationLayer
{
    public interface ISE_ServicesManager: ISE_Object
    {
        #region Public Methods

        void AddService(ISE_Service newService);
        void ClearAllServices();
        bool ContainsService(Type serviceType);
        ISE_Service GetService(Type serviceType);
        ISE_Service ReplaceService(Type serviceType, ISE_Service newService);
        ISE_Service RemoveService(Type serviceType);

        #endregion


        #region Debug Methods

#if (DEBUG)
        // put all debug methods in here...
#endif

        #endregion


        #region Properties

        int ServiceCount { get; }

        #endregion


        #region Events

        #endregion


    }
}
